1. Field
One embodiment of the invention relates to a program parallel processing technique suitable for, e.g., a computer that mounts a CPU including a plurality of CPU cores or a computer that mounts a plurality of CPUs.
2. Description of the Related Art
In recent years, various types of computers (personal computers) for private use, such as notebook type computers and desktop type computers have prevailed. For such computers, demands for information processing capability have been increasing to close to the limits of CPU performance improvement. For example, there is a demand for playing back high resolution moving image data by software.
To meet such demand, for example, computers which mount a plurality of CPUs, and recently, a CPU including a plurality of CPU cores, have become available. These computers shorten the turnaround time and improve the performance by processing programs in parallel. Various mechanisms for efficiently processing programs in parallel have been proposed (see, e.g., Jpn. Pat. Appln. KOKAI Publication No. 2005-258920).
One parallel processing technique of a program comprises two components, i.e., runtime processing including a scheduler, which assigns processing units in the program to execution units (when a computer mounts a plurality of CPUs, the scheduler assigns the processing units to the CPUs, and when a computer mounts a CPU including a plurality of CPU cores, the scheduler assigns the processing units to the CPU cores), and a processing unit processed on each execution unit. Note that the size of a processing unit is referred to as the granularity of parallel processing. It is possible to increase the opportunities for parallelization by decreasing the granularity, thereby improving the parallel performance.
On the other hand, if the granularity of parallel processing is too small, the number of operations of the scheduler is large. It is therefore impossible to obtain adequate performance due to too the high overhead.